function [xfinal, ZjCj, Y, z0, dz] = simplexSolucion(xstar, ind0, a, sa, co, bb)
%           SIMPLEX SOLUCION
%Esta es una rutina que recibe un arreglo de indices y un vector 
%de tamanho m (columnas L.I. de la matriz A) con la solucion del
%simplex desordenada. La rutina usa el arreglo de indices para
%ordenar la solucion y devolverla en un vector de tamanho n.
%
%usage:         simplexSolucion(xstar, ind0)
%    donde:
%       
%       xstar := vector de tamanho m que contiene la solucion
%               de las variables basicas.
%       ind0  := vector que contiene los indices de las variables
%                basicas en los ultimos m lugares y en los demas las
%                no basicas.
%      xfinal := vector contiene la solucion ordenada.
%
%                               - Marcela Maldonado Figueroa -
%                                 - Pedro Orozco del Pino -
%                                - Jose Alonso Solis Lemus -

fprintf('\n Entro a simplexSolucion \n');
m=length(xstar);
n=length(ind0);
xfinal=zeros(n,1);
for i=n-m+1:n
    xfinal(ind0(i))=xstar(i-(n-m));
end
AA = [a sa];
AA = AA(:,ind0);
co = co(ind0);
B = AA(:,(n-m+1):n);
N = AA(:,1:(n-m));

cb = co((n-m+1):n);
cn = co(1:(n-m));

xb = (B\bb) ;

dz = cb\B;

z0 = cb'*xb;

% Calculamos las yk's
Y = (B\N);

% Calculamos los Zj - Cj
ZjCj = cb'*Y-cn';








